package com.thinvent.nj.ais.mapper;

import com.thinvent.nj.mybatis.mapper.CURDMapper;
import com.thinvent.nj.ais.entity.Resource;
import com.thinvent.nj.ais.entity.Role;
import com.thinvent.nj.ais.entity.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 角色Mapper
 * @author liupeijun
 */
@Repository
public interface RoleMapper extends CURDMapper<Role, String> {

    /**
     * 根据组织ID获取角色列表
     * @param orgId
     * @return
     */
    List<Role> findListByOrgId(String orgId);

    /**
     * 根据用户ID获取该用户拥有的角色列表
     * @param userId
     * @return
     */
    List<Role> findListByUserId(String userId);

    /**
     * 保存角色资源关联关系列表
     * @param roleId
     * @param resourceList
     */
    void insertRoleResourceList(@Param("roleId") String roleId, @Param("resourceList") List<Resource> resourceList);

    /**
     * 删除角色资源关联关系
     * @param roleId
     */
    void delRoleResourceList(String roleId);

    /**
     * 删除角色用户关联关系
     * @param roleId
     */
    void delRoleUserList(String roleId);

    /**
     * 保存角色用户关联关系
     * @param roleId
     * @param userList
     */
    void insertRoleUserList(@Param("roleId") String roleId, @Param("userList") List<User> userList);
}
